home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / langs / pcl-src.zoo / cpatch.lsp < prev    next >
Encoding:
Text File  |  1992-07-09  |  970 b   |  38 lines

  1. ;;                -[Thu Feb 22 08:38:07 1990 by jkf]-
  2. ;; cpatch.cl
  3. ;;  compiler patch for the fast clos
  4. ;;  
  5. ;; copyright (c) 1990 Franz Inc.
  6. ;;
  7.  
  8. #+pcl-user-instances
  9. (eval-when (compile load eval)
  10. (error "Cannot use user-instances in EXCL on Sun4 with cpatch.lisp and
  11.         quadlap.lisp optimizations (see low.lisp).")
  12. )
  13. (in-package :comp)
  14.  
  15. (def-quad-op tail-funcall qp-end-block
  16.   ;; u = (argcount function-object)
  17.   ;;
  18.   ;; does a tail call to the function-object given
  19.   ;; never returns
  20.   )
  21.  
  22. (defun-in-runtime sys::copy-function (func))
  23.  
  24. (in-package :hyperion)
  25.  
  26. (def-quad-hyp r-tail-funcall comp::tail-funcall (u d quad)
  27.   ;; u = (argcount function)
  28.   ;;
  29.   (r-move-single-to-loc (treg-loc (car u)) *count-reg*)
  30.   (r-move-single-to-loc (treg-loc (cadr u)) *fcnin-reg*)
  31.   (re restore *zero-reg* *zero-reg*)
  32.   (re move.l `(d #.r-function-start-adj #.*fcnout-reg*) '#.*ctr2-reg*)
  33.   (re jmpl '(d 0 #.*ctr2-reg*) *zero-reg*)
  34.   (re nop))
  35.   
  36.   
  37.  
  38.